class Foo {
  #a; // 私有属性
  #b; // 私有属性
  constructor(a, b) {
    this.#a = a; //对私有属性赋值， 私有属性只能在类中通过this调用
    this.#b = b;// 对私有属性赋值，私有属性只能在类中通过this调用
  }
  #sum() {
    return this.#a + this.#b; // 私有属性只能在类中通过this调用
  }
  printSum() {
    console.log(this.#sum());  // 私有方法：只能在类中调用
  }

  // 使用存取器调用私有属性、给私有属性赋值
  get a() {
    return this.#a; 
  }
  set a(value) {
    this.#a = value
  }

  get b() {
    return this.#b; 
  }
  set b(value) {
    this.#b = value
  }

}

let fooObj1 = new Foo('苹果','橘子')
// fooObj1.#a  // 不能直接调用私有属性
// fooObj1.#sum // 不能直接调用私有属性
// 使用存取器调用
console.log(fooObj1.a);
console.log(fooObj1.b);
console.log('----------------');

fooObj1.a = '香蕉'
fooObj1.b = '梨'
console.log(fooObj1.a);
console.log(fooObj1.b);

